Розробка DLL-бібліотек

Інформація про навчальний заклад

ВУЗ:
Інші
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2011
Тип роботи:
Лабораторна робота
Предмет:
Програмування

Частина тексту файла

Міністерство освіти і науки України Хмельницький національний університет Кафедра системного програмування Лабораторна робота №7 з програмування на тему: «Розробка DLL-бібліотек» Лабораторна робота №7 Тема: Розробка DLL-бібліотек. Мета: навчитись створювати DLL-бібліотеки та використовувати їх в додатках, засвоїти навички експорту функцій. Завдання Розробити DLL-бібліотеку для виконання операцій над динамічним однозв’язним списком. DLL-бібліотека Project1.lpr library project1; {$mode objfpc}{$H+} uses Classes, sysutils { you can add units after this }; type vkaz=^spysok; spysok=record num:real; next:vkaz; end; {$IFDEF WINDOWS}{$R project1.rc}{$ENDIF} procedure add(var a,head:vkaz; D:real); export; begin if a<>nil then while a^.next<>nil do a:=a^.next; if a=nil then begin new(a); head:=a; end else begin new(a^.next); a:=a^.next; end; a^.num:=D; a^.next:=nil; end; exports add name 'add'; procedure Free(var a:vkaz; var head:vkaz); export; var temp:vkaz; begin a:=head; while a<>nil do begin temp:=a; a:=a^.next; dispose(temp); end; a:=nil; head:=nil; end; exports Free name 'Free'; procedure searchPos(var a:vkaz; head:vkaz; D:real; var N:integer); export; begin n:=1; a:=head; while (a<>nil) and (a^.num<>D) do begin a:=a^.next; inc(n); end; if a=nil then n:=0; end; exports searchPos name 'searchPos'; function search(var a:vkaz; head:vkaz; D:real):vkaz; begin a:=head; if a<>nil then while (a<>nil) and (D<>a^.num) do a:=a^.next; Search:=a; end; Procedure DelElem(var a,head:vkaz;tmp:vkaz); var tempa:vkaz; begin a:=head; if (a<>nil) and (tmp<>nil) then begin if tmp=a then begin a:=tmp^.next; dispose(tmp); head:=a; end else begin tempa:=a; while tempa^.next<>tmp do tempa:=tempa^.next; tempa^.next:=tmp^.next; dispose(tmp); end; end; end; procedure DelElemZnach(var a,head:vkaz; D:real); export; var temp:vkaz; begin if a<>nil then begin temp:=Search(a,head,D); if temp<>nil then DelElem(a,head,temp); end; end; exports DelElemZnach name 'delnum'; Procedure DelElemPos(var a,head:vkaz;pos:integer); export; var i:integer; tmp:vkaz; begin if (pos>0) and (a<>nil) then begin i:=1; tmp:=head; while (tmp<>nil) and (i<>pos) do begin tmp:=tmp^.next; inc(i) end; if tmp<>nil then DelElem(a,head,tmp); end; end; exports DelElemPos name 'delpos'; begin end. Програма з використанням бібліотеки Project1.lpr program lab7; {$mode objfpc}{$H+} uses {$IFDEF UNIX}{$IFDEF UseCThreads} cthreads, {$ENDIF}{$ENDIF} Interfaces, // this includes the LCL widgetset Forms, Unit1, LResources { you can add units after this }; {$IFDEF WINDOWS}{$R lab7.rc}{$ENDIF} begin Application.Title:='Однозвязні списки'; {$I lab7.lrs} Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. Unit1.pas unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls; type vkaz=^spysok; spysok=record num:real; next:vkaz; end; { TForm1 } TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; CB1: TCheckBox; Edit1: TEdit; Label1: TLabel; Label2: TLabel; Memo1: TMemo; R1: TRadioButton; R2: TRadioButton; R3: TRadioButton; R4: TRadioButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure CB1Change(Sender: TObject); procedure Edit1Change(Sender: TObject); procedure Edit1KeyPress(Sender: TObject; var Key: char); procedure FormCloseQuery(Sender: TObject; var CanClose: boolean); procedure FormCreate(Sender: TObject); private { private declarations } public { public declarations } end; var Form1: TForm1; list,head:vkaz; implementation procedure add(var a,head:vkaz; D:real); external 'project1...
Антиботан аватар за замовчуванням

28.03.2013 22:03

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини